-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(plugin-seo): add Czech translation #9009
Open
MrFriggo
wants to merge
3,609
commits into
payloadcms:2.x
Choose a base branch
from
MrFriggo:main
base: 2.x
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ayloadcms#8794) ## WHAT - Adds a copy code button to the Code Blocks in V3 Beta Website Template. - Uses the existing button from `@/components/ui/button` - SVG from this website: https://uxwing.com/copy-icon/ https://github.com/user-attachments/assets/2f6e720a-de37-40b5-a3bf-c748a69502b5 ## WHY - Copy-Code button is convenient for users looking at code blocks in tutorials/documentation/etc ## ISSUES - Button color invert isn't immediate on refresh in darkmode https://github.com/user-attachments/assets/f1093a27-73dd-47cb-8fc9-2f4bc301b80c
…ports (payloadcms#8856) I'm extending the Slate editor with a custom component and everything works great, except I have to import `useElement()` like this: ```tsx import { useElement } from 'node_modules/.pnpm/@payloadcms[email protected][email protected][email protected]_@babel+_qmdxs6s5hpzjhuopohgawpvl6i/node_modules/@payloadcms/richtext-slate/dist/field/providers/ElementProvider.js' export function Element() { const { attributes, children } = useElement() return ( <p {...attributes} className="rich-text-preheading"> {children} </p> ) } ``` That's because it's not in the `@payloadcms/richtext-slate/client` module. This PR fixes this and would allow me to do: ```tsx import { useElement } from '@payloadcms/richtext-slate/client' ```
### What? Fixes payloadcms#5152 issue related to sorting by a localized field with SQLite / Postgres database adapters. ### Why? It was an incorrect behaviour. ### How? Modifies the `getTableColumnFromPath` file to have correct join conditions. Previously if you had this structure in the _locales table _locale title parent en A 1 es B 1 we sorted by everything that's here, but we need to sort only by the passed locale. Additionally fixes a typescript error in `dev.ts` that I added here payloadcms#8834 Also, removes the condition with `joins.length` in `countDistinct`. It was there as for this issue payloadcms#4889 because sorting by a localized property caused duplication. This can simnifically improve performance for `.find` with nested querying/sorting on large data sets, because `count(*)` is faster than `count(DISTINCT id)`
Use `where <command>` if using windows when detecting package manager
This change adds support for sort with multiple fields in local API and REST API. Related discussion payloadcms#2089 Co-authored-by: Dan Ribbens <[email protected]>
…s#8724) Fixes an annoying instance where on the /account page if you change your theme then navigate away the Leaving without save popup is triggered even though you don't need to submit a form or trigger a save in order to change your admin theme.
… consistently across hooks (payloadcms#8847) Fixes payloadcms#8842
BREAKING CHANGE: Rename `@payloadcms/plugin-cloud` to `@payloadcms/payload-cloud`. Anyone using the existing plugin will need to switch to using the new package. ## Why? Since v3 will be using _fixed versioning_, all versions of `^3` must be available. Unfortunately, the `@payloadcms/plugin-cloud` version has already breached that version number. Renaming will allow it to be on the same version as other monorepo packages. Additionally, the name `plugin-cloud` is quite ambiguous and sometimes is confused with `plugin-cloud-storage`, so using `payload-cloud` feels like a good move to make this more evident.
Update templates to use `@payloadcms/payload-cloud`. **NOTE:** This should not be merged until beta.119 is released.
…erved when working with drawers (payloadcms#8872) Previously, when opening e.g. a link drawer, clicking within the drawer, and then closing it, the cursor / selection of the lexical editor will reset to the beginning of the editor. Now, we have dedicated logic to storing, preserving and restoring the lexical selection when working with drawers. This will work with all drawers. Links, uploads, relationships etc. https://github.com/user-attachments/assets/ab3858b1-0f52-4ee5-813f-02b848355998
…8743) Fixes payloadcms#8877 Current behaviour: `pnpx create-payload-app@beta`, select "Vercel Postgres", `.env` file: ```env # Added by Payload # should be POSTGRES_URL here! DATABASE_URI=postgres://postgres:<password>@127.0.0.1:5432/f PAYLOAD_SECRET=4415faad68a15727b4ebf582 ``` `payload.config.ts`: ```ts db: vercelPostgresAdapter({ pool: { connectionString: process.env.POSTGRES_URL || '', }, }), ```
…oadcms#8894) Fixes a potential race condition where versions could lose `latest: true` and potentially also introduce a conflict with the `parent` field. We now explicitly define these as we update versions in the `saveVersion` function.
…on (payloadcms#8895) While following the "Adding to an existing app" instructions for the **beta** docs, I noticed that the pnpm installation commands for the database adapters were missing the `@beta` tag, which will result in errors in the project.
… table (payloadcms#8898) <!-- Thank you for the PR! Please go through the checklist below and make sure you've completed all the steps. Please review the [CONTRIBUTING.md](https://github.com/payloadcms/payload/blob/main/CONTRIBUTING.md) document in this repository if you haven't already. The following items will ensure that your PR is handled as smoothly as possible: - PR Title must follow conventional commits format. For example, `feat: my new feature`, `fix(plugin-seo): my fix`. - Minimal description explained as if explained to someone not immediately familiar with the code. - Provide before/after screenshots or code diffs if applicable. - Link any related issues/discussions from GitHub or Discord. - Add review comments if necessary to explain to the reviewer the logic behind a change ### What? ### Why? ### How? Fixes # --> ### What? Updates the examples in the [admin/metadata#root-metadata](https://payloadcms.com/docs/beta/admin/metadata#root-metadata) and [admin/metadata#icons](https://payloadcms.com/docs/beta/admin/metadata#icons) sections from using `href` to `url` and fixes the way that the `images` Type excludes the description due to `|` being parsed as column separator ### Why? As of right now, the examples are incorrect and the `images` type bleeds into the description and omits it entirely See image of table issue at `images`: ![image](https://github.com/user-attachments/assets/086dc44c-5c1b-4b5e-9658-521eb60fff0d) ### How? Changes to `metadata.mdx` Fixes payloadcms#8887 Credit to @thgh for the `href` to `url` find
### What? Allow specifying the defaultSort and defaultLimit to use for populating a join field ### Why? It is much easier to set defaults rather than be forced to always call the join query using the query pattern ("?joins[categories][limit]=0"). ### How? See docs and type changes
…8910) ### What? Fixes the issue with `in` querying when the collection has a join field. ### Why? When using `.aggregate`, MongoDB doesn't cast a comma delimited value for the `$in` operator to an array automatically as it's not handled by Mongoose. ### How? Sanitizes the incoming value to an array if it should. Fixes payloadcms#8901
…#8899) `Issue`: Previously, documents that were locked but expired would still show in the list view / render the `DocumentLocked` modal upon other users entering the document. The expected outcome should be having expired locked documents seen as unlocked to other users. I.e: - Removing the lock icon from expired locks in the list view. - Prevent the `DocumentLocked` modal from appearing for other users - requiring a take over. `Fix`: - Only query for locked documents that are not expired, aka their `updatedAt` dates are greater than the the current time minus the lock duration. - Performs a `deleteMany` on expired documents when any user edits any other document in the same collection. Fixes payloadcms#8778 `TODO`: Add tests
Continued PR off of payloadcms#8899
### What? This PR aims to fix an issue in the form-builder plugin page - in the `number` field table, where an issue with one of the columns makes the whole table unformatted. [See issue here](https://payloadcms.com/docs/beta/plugins/form-builder#number). ### Why? As it stands, the whole table is being rendered without any formatting, making understanding it very difficult. ### How? Changes to `docs/plugins/form-builder.mdx`
Additional tests for global locked documents
Properly generate migrations for with-vercel-website template
…s#9237) Fixes a bug introduced in `beta-131` that rendered Lexical fields as read-only if they were within a block.
Programmatically generate lockfiles and postgres migrations
…lds (payloadcms#9245) This PR fixes cases where you may have a field called `id` within a group or a named tab, which would have incorrectly been treated as a custom ID field for the collection. However, custom IDs need to be defined at the root level - and now Payload only respects custom IDs defined at the root level.
Automatically create a PR that bumps the lockfiles of the templates post release.
Fixes payloadcms#9246. Custom default root views (account and dashboard) were not being properly thread to the custom component renderer. Custom account views were also improperly _stacking_ instead of _replacing_ the default view. Tests for this are incoming. To properly test this we need to wrap our default root views with custom ones, so that out existing `admin` test suite can continue to work alongside tests specifically for this issue.
Custom `account` and `dashboard` views now defined as lowercase in the config. This is to maintain consistency with all other custom views throughout the config. The underlying reason for this change is that previously, you could define React Components directly on these properties. Now, these are strictly _view configuration objects_, and the property names have been adjusted in order to semantically reflect that. These two views in particular, however, were never updated accordingly. ## Breaking Changes ```diff import { buildConfig } from 'payload' const config = buildConfig({ // ... admin: { components: { // ... views: { // ... - Account: ... - Dashboard: ... + account: ... + dashboard: ... }, }, }, }) ```
…dcms#9249) Deprecates `getPayloadHMR` and simplifies this pattern into a single `import { getPayload } from 'payload'`. We will still retain the exported `getPayloadHMR` but it now will throw a deprecation warning with instructions for how to migrate.
…ponents (payloadcms#9234) With this PR, you can now customize the way that `blocks` and `inlineBlocks` are rendered within Lexical's `BlocksFeature` by passing your own React components. This is super helpful when you need to create "previews" or more accurate UI for your Lexical blocks. For example, let's say you have a `gallery` block where your admins select a bunch of images. By default, Lexical would just render a collapsible with your block's fields in it. But now you can customize the `admin.components.Block` property on your `block` config by passing it a custom React component for us to render instead. So using that, with this `gallery` example, you could make a dynamic gallery React component that shows the images to your editors - and then render our built-in `BlockEditButton` to allow your editors to manage your gallery in a drawer. Here is an example where the BlockEditButton is added to the default Block Collapsible/Header: ![image](https://github.com/user-attachments/assets/db8c13f1-2650-4b33-bc11-2582bb937f3d) --------- Co-authored-by: James <[email protected]>
Speeds up the longest test suite. From: <img width="494" alt="image" src="https://github.com/user-attachments/assets/76d96ece-696a-4b56-9192-deaa307a0442"> To: <img width="477" alt="image" src="https://github.com/user-attachments/assets/a9d46180-a9cc-4ef9-8727-0130b422baf0">
Documents more breaking changes within the migration guide, improves overview, reorganizes everything, adds section headings, table of contents, and more.
… amount of network requests from blocks (payloadcms#9255) The field RSC now provides an initial state for all lexical blocks. This completely obliterates any flashes and lexical block loading states when loading or saving a document. Previously, when a document is loaded or saved, every lexical block was sending a network request in order to fetch their form state. Now, this is batched and handled in the lexical server component. All lexical block form states are sent to the client together with the parent lexical field, and are thus available immediately. We also do the same with block collapsed preferences. Thus, there are no loading states or layout shifts/flashes of blocks anymore. Additionally, when saving a document while your cursor is inside a lexical field, the cursor position is preserved. Previously, a document save would kick your cursor out of the lexical field. ## Look at how nice this is: https://github.com/user-attachments/assets/21d736d4-8f80-4df0-a782-7509edd993da **BREAKING:** This removes the `feature.hooks.load` and `feature.hooks.save` interfaces from custom lexical features, as they weren't used internally and added unnecessary, additional overhead. If you have custom features that use those, you can migrate to using normal payload hooks that run on the server instead of the client.
…adcms#9253) ### What? Previously, this code led to a validation error because `movie` is an object and you needed to use `movie.id` instead. ```ts const movie = await payload.create({ collection: 'movies', data: {} }) const result = await payload.create({ collection: 'object-writes', data: { many: [movie], manyPoly: [{ relationTo: 'movies', value: movie }], one: movie, onePoly: { relationTo: 'movies', value: movie, }, }, }) ``` While it's simple to modify this example, it's more painful when you have a data with `depth` > 0 and then you want to update that document. ### Why? Better DX as less checks needed, and TypeScript says that we can pass an object. ### How? Sanitizes the field value in the root `beforeValidate` hook
…loadcms#9256) ### What? Fixes the issue when visiting the create view with the Join Field and using postgres adapter ``` invalid input syntax for type integer: "NaN" ``` This happens because we don't have an ID yet and we send to the database: `WHERE id = NaN` ### How? Avoids calling `getTableState` inside of `RelationshipTable` if there's no ID yet, as it will always lead to the same empty result. While we _could_ avoid error directly in the database adapter, I don't think we should do that render request Fixes payloadcms#9193
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What?
Adds Czech translation to the SEO plugin.
Why?
There was no Czech translation available before.